kerberos (iletişim kuralı) ne demek?
Kerberos / kərbərəs / güvenli olmayan bir ağ üzerinde haberleşen
kaynakların, bilet mantığını kullanarak kendi kimliklerini ispatlamak
suretiyle iletişim kurmalarını sağlayan bir bilgisayar ağı kimlik
doğrulama protokolüdür. Protokolün tasarımcıları, ilk başta
istemci-sunucu modelini hedef almış ve bu doğrultuda hem kullanıcının
hem de sunucunun birbirlerinin kimliklerini doğrulamasını sağlayan
karşılıklı kimlik doğrulama özelliğini sunmuşlardır. Kerberos protokol
mesajları, izinsiz dinlemelere ve yansıtma ataklarına karşı
dayanıklıdır.
<span lang="EN-US"><span lang="tr" dir="ltr">Kerberos simetrik anahtar
şifreleme üzerine inşa edilmiştir ve güvenilir bir üçüncü doğrulayıcıya
(</span></span>trusted third
party<span lang="EN-US"><span lang="tr" dir="ltr">) ihtiyaç duyar,
isteğe bağlı olarak kimlik doğrulamanın belli aşamalarında açık anahtar
şifreleme modelini de kullanabilir. Kerberos varsayılan port olarak UDP
- portu kullanır.</span></span>
Tarihçe ve gelişim
MIT, Kerberos'u Project
Athena isimli projenin sunduğu ağ servislerini korumak için geliştirdi
ve mitolojideki Kerberos'tan
esinlenerek protokole bu isim verildi. Protokolün birkaç sürümü
bulunmaktadır, 1-3 arası sürümleri sadece MIT'de kullanıldı.
Kerberos sürüm 4'ün başlıca tasarımcıları olan Steve Miller ve Clifford
Neuman, söz konusu sürümü "Project Athena" projesine hedeflemelerine
rağmen 1980'lerin sonlarında çıkardılar. John Kohl ve Clifford Neuman
tarafından tasarlanan 5. sürüm, 4. sürümün bazı kısıtlamalarını ve
güvenlik problemlerini aşarak 1993'te RFC 1510 olarak ortaya çıkarıldı.
Windows NT ve sonrası
Windows sürümleri kimlik doğrulama
metodu olarak Kerberos'un bir çeşidini kullanırlar. Apple Mac OS
X de Kerberos'u hem istemci hem sunucu tarafta
kullanır.
<span lang="EN-US">Birleşik Devletler yetkilileri, Kerberos protokolünü
askeri destek teknolojisi olarak sınıflandırmış ve 56-bit DES (Data
Encryption Standard) şifreleme algoritmasını kullandığı için ihracatını
yasaklamıştır. ABD kaynaklı olmayan Kerberos 4 tasarımı KTH-KRB,
İsveç’teki Royal Teknoloji Enstitüsü, Birleşik Devletler, kriptografi
ihracat mevzuatını değiştirmeden önce sistemi Birleşik Devletler harici
kullanıma hazır hale getirmiştir (circa 2000). İsveç tasarımı, eBones
adında kısıtlı bir veriyonu temel alır. eBones ise Kerberos 4 yama
seviye 9’u temel alan MIT Bones yayınından derlenmiştir. </span>
<span lang="EN-US">2005’te, IETF (Internet Engineering Task Force)
Kerberos çalışma grubu spesifikasyonları güncellemiştir.
Güncellemeler: </span>
- <span lang="EN-US">Şifeleme ve sınama toplamı
spesifikasyonları.</span>
- <span lang="EN-US">Kerberos 5 için AES (Advanced Encryption
Standard) şifreleme (RFC 3962).</span>
- <span lang="EN-US">Kerberos 5 spesifikasyonunun yeni bir sürümü:
“Kerberos Ağ Kimlik Doğrulama Servisi” (The Kerberos Network
Authentication Service V5), RFC 1510’u kullanım dışı bırakmış,
protocol ve kullanım amacınının aytrıntılarını daha detaylı ve daha
anlaşılır bir şekilde açıklamıştır.</span>
- <span lang="EN-US">GSS-API (Generic Security Services Application
Program Interface) spesifikasyonunun yeni bir sürümü: “The Kerberos
Version 5 Generic Security Service Application Program Interface
(GSS-API) Mechanism: Version 2." (RFC 4121).”</span>
<span lang="EN-US">MIT, BSD için kullanılanlara benzer kullanım hakları
ile tamamen bedava ulaşılabilen bir Kerberos geliştirmiştir. 2007’de,
MIT, geliştirme sürecini teşvik etmek amacıyla Kerberos Konsorsiyumunu
kurmuştur. Aralarında Oracle, Apple Inc., Google, Microsoft, Centrify
Corporation and TeamF1 Inc. gibi sponsorlar, Royal Institute of
Technology in Sweden, Stanford University, MIT, gibi akademik kurumlar
ve CyberSafe gibi oluşumların ticari versiyonları oluşmuştur.</span>
Microsoft Windows
<span lang="EN-US">Windows 2000 ve sonrası sürümler Kerberos’u temel
kimlik doğrulama metodu olarak kullanmaktadır. Kerberos protocol
ailesine yönelik bazı Microsoft eklentileri, RFC
3244 "Microsoft Windows 2000 Kerberos Change
Password and Set Password Protocols" olarak yazılı hale getirilmiştir.
RFC 4757 Microsoft’un RC4 şifre kullanımını
anlatır. Microsoft Kerberos protokolünü kullanmakla beraber, MIT
yazılımını kullanmaz. </span>
<span lang="EN-US">Kerberos, birincil kimlik doğrulama metodu olarak
kullanılır: Genel manada, istemci olarak bir Windows alanına (domain)
bağlanmak, istemciden ilgili Windows alanına ve bu alan ile ilintili
bütün doğrulanmış alanlara yönelik kimlik doğrulama servisleri için
Kerberos’u varsayılan protocol olarak ayarlamak anlamına
gelmektedir.</span>
<span lang="EN-US">Bu durumun aksine, istemci veya sunucudan biri veya
ikisi birden bir alana katılmamış ise (veya aynı güvenilen alan
ortamının parçası değilse), Windows istemci ve sunucu arasındaki kimlik
doğrulamasını gerçekleştirmek için Kerberos yerine NTLM kullanır.</span>
UNIX tabanlı işletim sistemleri
<span lang="EN-US">Birçok Unıx tabanlı işletim sistemi,
FreeBSD, Mac OS
X,</span> Red Hat Enterprise
Linux, <span lang="EN-US">Oracle's Solaris,
IBM AIX and Z/OS, HP <span lang="EN-US">OpenVMS dahil olmak üzere,
kullanıcı ve servislerin Kerberos kimlik doğrulaması için yazılımlar
barındırırlar. Gömülü platformlarda çalışan istemciler ve ağ servisleri
için gömülü Kerberos V kimlik doğrulama vesiyonları TeamF1, Inc gibi
firmalar tarafından sunulmaktadır.</span></span>
Protocol
Tanım
İstemci kendisini, KDC (Key Distribution
Center) adı verilen anahtar
dağıtım merkezine istemciden aldığı kullanıcı adını gönderen bir kimlik
doğrulama sunucusuna (AS) tanıtır. KDC doğrulanmış bileti (TGT) zaman
damgası ile birlikte onaylar, kullanıcının parolası ile şifreler ve
şifrelenmiş halini kullanıcının ortamına gönderir. Gönderim işlemi çok
sık olmamakta, genellikle kullanıcı girişi sırasında; TGT'nin belli bir
süre sonra zaman aşımına uğraması sonucu, kullanıcıya hissettirilmeden
kullanıcının oturum yöneticisi tarafından yenilenir.
İstemci, başka bir kaynağa (Kerberos dilinde "principal") ulaşması
gerekirse, TGT'sini (ticket-granting ticket) KDC ile aynı sunucuyu
paylaşan TGS'ye (ticket-granting service) gönderir. TGT'nin geçerliliği
doğrulandıktan ve kullanıcı talep ettiği servise ulaşım izni aldıktan
sonra TGS bileti ve oturum anahtarlarını imzalar ve istemciye geri
gönderir. İstemci daha sonra bileti servis sunucusuna servis isteği ile
beraber gönderir.
Protokol detayları şöyle açıklanabilir:
İstemci tabanlı kullanıcı girişi
- Kullanıcı istemci tarafında kullanıcı adı ve parola girer. Pkinit
(RFC4556) gibi diğer parola mekanizmaları
parola yerine açık anahtar kullanımına izin verir.
- İstemci parolayı gizli anahtara çevirir. Şifre ailesinin kullanımına
bağlı olarak anahtar sıralama veya tek yönlü özet fonksiyonları
kullanılır.
İstemci kimlik doğrulaması
- İstemci sunucuya (AS) kullanıcı adını açık mesaj olarak gönderir ve
kullanıcı adına servisleri talep eder. (Not: Ne gizli şifre ne de
parola sunucuya gönderilmez.) Kimlik doğrulama sunucusu gizli
şifreyi, veri tabanında (örn. Windows sunucuda Active Directory)
bulunan kullanıcıya ait parolayı özetlemek sureti ile oluşturur.
- Kimlik doğrulama sunucusu (AS) istemcinin veri tabanında olup
olmadığını kontrol eder. Eğer veri tabanında varsa, AS istemciye şu
iki mesajı yollar:
- Mesaj A: İstemci/kullanıcı gizli anahtarı kullanılarak üretilen
şifrelenmiş İstemci/TGS Oturum Anahtarı.
- Mesaj B: TGS'nin gizli anahtarı kullanılarak üretilmiş
şifrelenmiş istemci adı, istemci ağ adresi, geçerlilik süresi ve
istemci/TGS oturum anahtarını içeren bir TGT.
- İstemci, A ve B mesajlarını alır almaz, kullanıcı tarafından girilen
parolayı kullanarak A mesajını açmaya çalışır. Eğer kullanıcının
girmiş olduğu parola ile veri tabanında bulunan parola aynı değilse,
istemcinin gizli anahtarı farklı olacak ve bunun sonucunda A
mesajını açmayı başaramayacaktır. Geçerli bir parola ve gizli
anahtar ile istemci A mesajını çözecek ve İstemci/TGS Oturum
Anahtarını alabilecektir. Bu oturum anahtarı daha sonra TGS ile
yapılacak iletişimlerde kullanılacaktır. (Not: B mesajı, TGS'nin
gizli anahtarı kullanılarak şifrelendiğinden istemci tarafından
çözülemez.) Bu noktada, istemci kendi kimliğini TGS'ye tanıtma
konusunda yeterli bilgiye sahiptir.
İstemci Servis Yetkilendirme
- Servis talep edilirken, istemci TGS'ye aşağıdaki mesajları yollar:
- Mesaj C: B mesajından alınan TGT ve talep edilen servis adı.
- Mesaj D: İstemci/TGS Oturum Anahtarı ile şifrelenmiş Kimlik
doğrulayıcı(içinde istemci adı, istemci ağ adresi, geçerlilik
periyodu ve İstemci/Sunucu Oturum Anahtarı barındırır)
- C ve D mesajını alır almaz, TGS C mesajından B mesajını çıkarır.
TGS'nin gizli anahtarını kullanarak B mesajını çözer. Bu ona
istemci/TGS oturum anahtarını verir. Bu anahtarı kullanarak, TGS, D
mesajını (Kimlik denetçisi) çözer ve istemciye şu mesajları yollar:
- Mesaj E: İstemci-Sunucu bileti (içinde istemci adı, istemci ağ
adresi, geçerlilik periyodu ve İstemci/Sunucu Oturum Anahtarını
barındırır).
- Mesaj F: İstemci/TGS Oturum Anahtarı ile şifrelenmiş
İstemci/Sunucu Oturum Anahtarı.
İstemci Servis Talebi
- TGS'den E ve F mesajlarını alır almaz, istemci kendisini Servis
Sunucuya tanıtmak için gerekli yeterli bilgiye sahip olmuş olur.
İstemci SS'ye bağlanır ve şu mesajları yollar:
- Mesaj E: Bu bir önceki adımda üretilen E mesajının aynıdır.
- Mesaj G: İstemci kimliğini, zaman damgasını içeren ve
İstemci/Sunucu Oturum Anahtarı kullanılarak şifrelenen yeni bir
kimlik denetleyici (Authenticator).
- SS, İstemci/Sunucu Oturum Anahtarını elde etmek için kendi gizli
anahtarını kullanarak bileti çözer. Bu oturum anahtarını kullanarak,
SS kimlik denetleyicisini çözer ve istemcinin gerçek kimliğini
doğrulamak ve servis hizmeti sunmak konusundaki karalılığını
doğrulamak için istemciye şu mesajı yollar:
- Mesaj H: İstemci/Sunucu Oturum Anahtarını kullanarak
şifrelenmiş, istemcinin kimlik doğrulayıcıda bulunan zaman
damgasının bir fazlası.
- İstemci, İstemci/Sunucu Oturum Anahtarını kullanarak doğrulama
mesajını çözer ve zaman damgasının doğru güncellenip
güncellenmediğini denetler. Eğer doğru güncellenmiş ise, istemci,
sunucuya güvenebilir ve servis taleplerini sunucuya göndermeye
başlayabilir.
- Sunucu, istemciye talep edilen servisleri sunar.
Sorunlar ve Kısıtlamalar
- Tek noktadan çökme (Single point of failure): Kerberos merkezi bir
sunucunun sürekli erişimine ihtiyaç duyar. Kerberos sunucuları
çalışmaz halde olduğunda, yeni kullanıcılar giriş yapamaz. Bu sorun,
birden fazla Kerberos sunucusu kullanılarak ve geriye dönük kimlik
denetimi mekanizmaları ile giderilebilir.
- Kerberos, çok sıkı zaman gereksinimlerine sahiptir ki sürece dahil
olan tarafların zamanlarının tanımlanmış limitlere uyması gerekir.
Biletler, zaman aşımına sahiptir ve eğer sunucu saati, Kerberos
Sunucu saati ile ayarlı değilse, kimlik doğrulaması yapılamaz.
Varsayılan zaman kayması 5 dakikadan fazla olmamalıdır. Pratikte, Ağ
Zamanlayıcı Protokol (Network Time Protokol) servisleri genelde
sunucuların zamanlarını senkronize olmasını sağlar. Hatırlatmak
gerekir ki; bazı sunucular (Microsoft tasarımı da bunlardan biridir)
sunucuların ayarlanan değerden daha fazla zaman kaymasına sahip olma
ihtimaline karşı, şifrelenmiş sunucu zaman bilgisini içeren bir
KRB_AP_ERR_SKEW döner. Bu durumda, istemci, sunucu saatini öğrenerek
aradaki farkı hesaplama şansına sahip olur. Bu davranış, kodlu belgede
kayıt altına alınmıştır.
- Yönetici protokolü henüz standartlaştırılmamıştır ve sunucudan
sunucuya değişkenlik gösterir. Parola değişimleri RFC
3244 kodlu belgede
tanımlanmıştır.
- Simetrik şifreleme benimsenmesi durumunda (Kerberos hem simetrik hem
de asimetrik şifreleme ile çalışabilir), KDC bütün kimlik
doğrulamalarını kontrol ettiğinden, bu altyapının ele geçirilmesi
saldırganın kendini kullanıcıların yerine koymasına olanak sağlar.
- Farklı bir sunucu ismine ihtiyaç duyan her bir ağ servisinin kendine
ait Kerberos anahtar kümesine ihtiyacı olacaktır. Bu durum, sanal
sunucu ve sunucu kümeleri oluşturmayı zorlaştırmaktadır.
- Kerberos, Kerberos sembol(token) sunucusu ile tam bir güven ilişkisi
içinde bulunan, kullanıcı hesaplarına, istemcilere ve sunucu
üzerinde çalışan servislere ihtiyaç duyar (Hepsi birden aynı
Kerberos alanı(domain) içinde bulunmalı ya da birbirleri ile güvenli
iletişimi olan alanların içinde olmalıdır). Kerberos, kimlik
denetimi sağlayan mekanizmaların istemciler hakkında bilgiye sahip
olmadığı klasik internet veya bulut senaryolarında kullanılmak için
uygun değildir.
- Güvenilir istemci gereksinimi, önceden hazırlanmış ortamların (örn.,
test ortamında kurgulanmış birbirinden bağımsız alanlar, ön-üretim
ortamları ve asıl üretim ortamları ) kurulamasını
güçleştirebilmektedir, ki bu durumu aşmak için ya alanların
birbirinden tamamen ayrılmasını engelleyen güvenli alan iletişimleri
kurmak ya da her bir ortam için fazladan istemciler tanımlamak
gereklidir.
Açıklıklar
Kasım 2014'te, Microsoft, KDC(Key Distirbution Center)'deki
sömürülebilecek bir açıklığı onaran bir yama(MS14-068) yayınladı. Öyle
görünüyor ki açılık, kullanıcıların alan(domain) seviyesine çıkacak
kadar, haklarını yükseltmelerine(kötüye kullanmalarına) olanak
sağlamaktadır.
Ayrıca
Kaynakça
- RFC 4556, abstract
- http://www.zdnet.com/details-emerge-on-windows-kerberos-vulnerability-7000035976/
Genel
- Resource Kit
Team. [http://msdn.microsoft.com/en-us/library/aa378747(VS.85).aspx
"Microsoft Kerberos (Windows)"] . MSDN Library.
- B. Clifford Neuman and Theodore Ts'o (September 1994). "Kerberos:
An Authentication Service for Computer
Networks"
. IEEE Communications 32 (9):
33–8. doi:10.1109/35.312841.
- John T. Kohl, B. Clifford Neuman, and Theodore Y. T'so (1994). "The
Evolution of the Kerberos Authentication System". In Johansen, D.;
Brazier, F. M. T. (Postscript).
Washington: IEEE Computer Society Press.
pp. 78–94. ISBN 0-8186-4292-0.
- "Kerberos Overview: An Authentication Service for Open Network
Systems"
. Cisco Systems date=19 January 2006. Retrieved 15 August 2012.
- "How Kerberos Authentication
Works"
. learn-networking.com. 28 January 2008. Retrieved 15 August 2012
RFC
- RFC 1510 The Kerberos Network Authentication
Service (V5) [Obsolete]
- RFC 1964 The Kerberos Version 5 GSS-API
Mechanism
- RFC 3961 Encryption and Checksum
Specifications for Kerberos 5
- RFC 3962 Advanced Encryption Standard (AES)
Encryption for Kerberos 5
- RFC 4120 The Kerberos Network Authentication
Service (V5) [Current]
- RFC 4121 The Kerberos Version 5 Generic
Security Service Application Program Interface (GSS-API) Mechanism:
Version 2
- RFC 4537 Kerberos Cryptosystem Negotiation
Extension
- RFC 4556 Public Key Cryptography for Initial
Authentication in Kerberos (PKINIT)
- RFC 4557 Online Certificate Status Protocol
(OCSP) Support for Public Key Cryptography for Initial
Authentication in Kerberos (PKINIT)
- RFC 4757 The RC4-HMAC Kerberos Encryption
Types Used by Microsoft Windows [Obsolete]
- RFC 5021 Extended Kerberos Version 5 Key
Distribution Center (KDC) Exchanges over TCP
- RFC 5349 Elliptic Curve Cryptography (ECC)
Support for Public Key Cryptography for Initial Authentication in
Kerberos (PKINIT)
- RFC 5868 Problem Statement on the Cross-Realm
Operation of Kerberos
- RFC 5896 Generic Security Service Application
Program Interface (GSS-API): Delegate if Approved by Policy
- RFC 6111 Additional Kerberos Naming
Constraints
- RFC 6112 Anonymity Support for Kerberos
- RFC 6113 A Generalized Framework for Kerberos
Pre-Authentication
- RFC 6251 Using Kerberos Version 5 over the
Transport Layer Security (TLS) Protocol
- RFC 6448 The Unencrypted Form of Kerberos 5
KRB-CRED Message
- RFC 6542 Kerberos Version 5 Generic Security
Service Application Program Interface (GSS-API) Channel Binding Hash
Agility
- RFC 6560 One-Time Password (OTP)
Pre-Authentication
- RFC 6649 Deprecate DES, RC4-HMAC-EXP, and
Other Weak Cryptographic Algorithms in Kerberos
- RFC 6784 Kerberos Options for DHCPv6
- RFC 6803 Camellia Encryption for Kerberos 5
- RFC 6806 Kerberos Principal Name
Canonicalization and Cross-Realm Referrals
- RFC 6880 An Information Model for Kerberos
Version 5
Konuyla ilgili yayınlar
- "Novell Inc's Comment to the Proposed Settlement between Microsoft
and the Department of Justice, pusuant to the Tunney
Act"
. Civil Action No. 98-1232 (CKK): United States of America v.
Microsoft Corporation. Department of Justice. 29 January 2002.
Retrieved 15 August 2012.
- Bryant, Bill (February 1988). "Designing an Authentication System:
A Dialogue in Four
Scenes" . Humorous
play concerning how the design of Kerberos evolved.
MIT.
- Hornstein, Ken (18 August 2000). "Kerberos FAQ,
v2.0" . Secretary
of Navy. Archived from the
original on
21 May 2006. Retrieved 15 August 2012.
Dış bağlantılar
Orijinal kaynak: kerberos (iletişim kuralı). Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Kategoriler